iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
Modern Web

你應該要知道的CSS技巧:發掘被忽略但實用的屬性系列 第 23

【Day23】做Slider好用的功能 - IntersectionObserver

  • 分享至 

  • xImage
  •  

IntersectionObserver

IntersectionObserver支援度:Can I Use)

因為前幾天講到slider,想要紀錄一下前陣子在工作上同事分享的好招。
以往做slider會有左右箭頭,如果要達到比較好的使用者體驗,需要知道slider是不是已經到底來判斷是否要顯示箭頭。
IntersectionObserver是一個API用來判斷物體是否在可視範圍內,而我們要利用這個API來判斷是否要顯示箭頭,
例如:左方的箭頭顯示邏輯就是當第一張slide出現在可視範圍就不顯示,右方箭頭亦然。

以下是範例片段:

const observeElementInContainer = (element, container, callback)=> {
      const observer = new IntersectionObserver((entries) => {
        const entry = entries[0];
        if (entry.isIntersecting) {
          callback(true);
        }else{
          callback(false);
        }
      });
      observer.observe(element, { root: container });
    }
    onMounted(() => {
        observeElementInContainer(targetLeft.value, slideContainer.value, (isInContainer) => {
          isLeftArrShow.value=!isInContainer
        });
        observeElementInContainer(targetRight.value, slideContainer.value, (isInContainer) => {
          isRightArrShow.value=!isInContainer
        });
    })

codepen範例

IT15-Day23-Intersection Observer API in Slider

參考來源


上一篇
【Day22】單用CSS就可以做Slider!? - CSS Slider
下一篇
【Day24】Scroll引起的元素定位問題: Scroll abolute跑位
系列文
你應該要知道的CSS技巧:發掘被忽略但實用的屬性30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言